package com.zj.study.utils.util;

import java.util.List;


/**
 * <p>分页工具类<p/>
 *
 * @author 赵赳
 * @since 2022/3/31 16:07
 */
public class PageUtil {

  /**
   * 开始分页
   *
   * @param list     需要分页的list参数
   * @param pageNum  页码
   * @param pageSize 每页多少条数据
   * @return 分页后的参数
   */
  public static <T> List<T> startPage(List<T> list, Integer pageNum,
      Integer pageSize) {
    if (list == null) {
      return null;
    }
    if (list.size() == 0) {
      return null;
    }

    if (pageNum == 0) {
      pageNum = 1;
    }

    Integer count = list.size(); // 记录总数
    int pageCount; // 页数
    if (count % pageSize == 0) {
      pageCount = count / pageSize;
    } else {
      pageCount = count / pageSize + 1;
    }

    int fromIndex; // 开始索引
    int toIndex; // 结束索引

    if (!pageNum.equals(pageCount)) {
      fromIndex = (pageNum - 1) * pageSize;
      toIndex = fromIndex + pageSize;
    } else {
      fromIndex = (pageNum - 1) * pageSize;
      toIndex = count;
    }
    return list.subList(fromIndex, toIndex);
  }


}


